热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于鲁棒弹性变形的视差容忍图像拼接-Python实现

本文介绍了《视差容忍图像拼接基于鲁棒弹性变形》(Parallax-TolerantImageStitchingBasedonRobustElasticWarping)论文的Python实现,主要针对两幅图像的拼接。该方法通过弹性变形技术提高图像拼接的质量,尤其是在存在视差的情况下。

基于鲁棒弹性变形的视差容忍图像拼接 - Python实现

  • 介绍
    • 代码实现
    • 运行结果展示


介绍

本项目实现了J. Li等人在IEEE Transactions on Multimedia上发表的《视差容忍图像拼接基于鲁棒弹性变形》论文中的算法。该算法特别适用于处理具有视差的图像拼接问题,通过引入弹性变形技术,提高了拼接图像的质量和自然度。论文详细信息如下:

J. Li, Z. Wang, S. Lai, Y. Zhai and M. Zhang, “Parallax-Tolerant Image Stitching Based on Robust Elastic Warping,” in IEEE Transactions on Multimedia, vol. 20, no. 7, pp. 1672-1687, July 2018, doi: 10.1109/TMM.2017.2777461.

项目代码已托管至GitHub,欢迎Star支持。

代码实现

以下是主程序文件 main.py 的代码示例:

import cv2 as cv
from load_data import load_data
from comp_KR import comp_KR
from mosaic_global import mosaic_global
from mosaic_local_ori import mosaic_local_ori
import matplotlib.pyplot as plt

data_path = 'images/DHW-temple/'
imfile1 = data_path + '4.jpg'
imfile2 = data_path + '5.jpg'
im1 = cv.imread(imfile1)
im2 = cv.imread(imfile2)
X1, X2 = load_data(im1, im2)
print("Number of matches: ", X1.shape[1])
H, X1_ok, X2_ok = comp_KR(im1, im2, X1, X2)
print("H =\n", H)
print("H normalize =\n", H / H[2, 2])
mosaic = mosaic_global(im1, im2, H)
cv.imwrite(data_path + 'mosaic_global.jpg', mosaic)
cv.imshow("mosaic_global", mosaic)
cv.waitKey(1)
mosaic = mosaic_local_ori(im1, im2, H, X1_ok, X2_ok)
cv.imwrite(data_path + 'mosaic_REW.jpg', mosaic)
cv.imshow("mosaic_REW", mosaic)
cv.waitKey(0)

其中,load_data.py 文件用于提取和匹配图像特征点,comp_KR.py 文件用于计算全局单应性矩阵,mosaic_global.pymosaic_local_ori.py 分别用于全局和局部对齐的图像拼接。

运行结果展示


全局拼接结果
弹性局部对齐结果
全局拼接结果
弹性局部对齐结果
全局拼接结果
弹性局部对齐结果
全局拼接结果
弹性局部对齐结果

推荐阅读
author-avatar
huo斌_340
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有